// 导入模块
import Vue from 'vue';
import axios from 'axios';
import { SERVER_BASE_URL } from './config';

const isProduction = process.env.NODE_ENV === 'production';
// const token =
//   isProduction &&
//   location.href
//   .slice(location.href.indexOf('?') + 1)
//   .match(/token=([\s\S]*)/)[1];

export default function fetch(options) {
  return new Promise((resolve, reject) => {
    const instance = axios.create({
      baseURL: SERVER_BASE_URL,
      timeout: 1000 * 60 * 10,
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        Accept: 'application/json'
      }
    });
    // http request 拦截器
    instance.interceptors.request.use(
      config => {
        // ADD 添加从Url获取token
        // if (isProduction) {
        //   config.headers.common['Authorization'] =
        //     token || localStorage.getItem('token');
        // } else {
        //   config.headers.common['Authorization'] =
        //   // 管理员
        //   // 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiIxIiwiZXhwIjoxNTMwMzM2OTMyLCJuYmYiOjE1MzAyNTA1MzJ9.-yAJta4lU1Ibchst9CFrZOADayPMSYLXZvnz6DR0rYc';
        //   // 审核管理员
        //   'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiI3NjI4IiwiZXhwIjoxNTMwNTgwNzYwLCJuYmYiOjE1MzA0OTQzNjB9.LWxe4t7kTX4bw4WCWHIkKiBAquPaK6VH8MBW18IZYwk'
        // }
        return config;
      },
      err => {
        // iView.LoadingBar.error();
        return Promise.reject(err);
      }
    );

    // http response 拦截器
    instance.interceptors.response.use(
      response => {
        // iView.LoadingBar.finish();
        return response;
      },
      error => {
        // iView.LoadingBar.error();
        if (error) {}
        return Promise.reject(error); // 返回接口返回的错误信息
      }
    );

    // 请求处理
    instance(options)
      .then(({
        data
      }) => {
        if (data.code === 200) {
          resolve(data);
        } else {
          //  reject(data.message)
          // Notice.error({
          //   title: '出错了！',
          //   desc: '错误原因 ' + data.msg,
          //   duration: 0
          // });
        }

        return false;
      })
      .catch(error => {
        // 请求失败时,根据业务判断状态
        // Notice.error({
        //   title: '出错了！',
        //   desc: '错误原因 ' + JSON.stringify(error),
        //   duration: 0
        // });
        reject(error);
      });
  });
}
